#ifndef H__RIJNDAEL
#define H__RIJNDAEL

class QString;
class QByteArray;

// encrypt 'srcFile' into 'dstFile'. 'srcFile' was left untouched. 'dstFile' was overwrote
int encrypt(QString srcFile, QString dstFile, QString pwd);
// decrypt 'srcFile' into 'dstFile'. 'srcFile' was left untouched. 'dstFile' was overwrote
int decrypt(QString srcFile, QString dstFile, QString pwd);

int rijndaelSetupEncrypt(unsigned long *rk, const unsigned char *key,
						 int keybits);
int rijndaelSetupDecrypt(unsigned long *rk, const unsigned char *key,
						 int keybits);
void rijndaelEncrypt(const unsigned long *rk, int nrounds,
					 const unsigned char plaintext[16], unsigned char ciphertext[16]);
void rijndaelDecrypt(const unsigned long *rk, int nrounds,
					 const unsigned char ciphertext[16], unsigned char plaintext[16]);

#define KEYLENGTH(keybits) ((keybits)/8)
#define RKLENGTH(keybits)  ((keybits)/8+28)
#define NROUNDS(keybits)   ((keybits)/32+6)

#endif
